/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controleur;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.LinkedList;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Valentin
 */
public class Excursion {

    private int id;
    private String embarcation;
    private int idEmbarcation;
    private Date date;
    private Map<Integer, Participant> participants;
    private Moniteur moniteurs;
    private Moniteur moniteur;
    private double prixPers;
    private int nbPlaces;
    private Embarcadere embarcadereDepart;
    private Embarcadere embarcadereArrivee;

    public Excursion() {

    }

      

    // ###################  GETTERS ###################
    public int getId() {
        return id;
    }

    public String getEmbarcation() {
        return embarcation;
    }

    public Date getDate() {
        return date;
    }
    
    public Map<Integer, Participant> getParticipants() {
        return participants;
    }
    
    public Participant getParticipant(int aParticipantID) {
        return participants.get(aParticipantID);
    }
    public Moniteur getMoniteurs() {
        return moniteurs;
    }
   

    public double getPrixPers() {
        return prixPers;
    }

    public int getNbPlaces() {
        return nbPlaces;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Moniteur getMoniteur() {
        return moniteur;
    }

    public int getIdEmbarcation() {
        return idEmbarcation;
    }

    public Embarcadere getEmbarcadereDepart() {
        return embarcadereDepart;
    }

    public Embarcadere getEmbarcadereArrivee() {
        return embarcadereArrivee;
    }

    // ###################  SETTERS ###################
    
    public void setTime(long time){
       if(date == null)
        date = new Date(time);
       else
        date.setTime(time);
    }
    public void setEmbarcation(String embarcation) {
        this.embarcation = embarcation;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public void setParticipants(Map<Integer, Participant> participants) {
        this.participants = participants;
    }
   public void setMoniteurs( Moniteur moniteurs) {
        this.moniteurs = moniteurs;
    }
    public void setPrixPers(double prixPers) {
        this.prixPers = prixPers;
    }

    public void setNbPlaces(int nbPlaces) {
        this.nbPlaces = nbPlaces;
    }

    public void setMoniteur(Moniteur moniteur) {
        this.moniteur = moniteur;
    }

    public void putParticipantInMap(Participant p) {
        participants.put(p.getId(), p);
    }

    public void setIdEmbarcation(int idEmbarcation) {
        this.idEmbarcation = idEmbarcation;
    }

    public void setEmbarcadereDepart(Embarcadere embarcadereDepart) {
        this.embarcadereDepart = embarcadereDepart;
    }

    public void setEmbarcadereArrivee(Embarcadere embarcadereArrivee) {
        this.embarcadereArrivee = embarcadereArrivee;
    }

    @Override
    public String toString() {
        return embarcation;
    }
    
    public void inscrire(){
        nbPlaces = nbPlaces-1;
    }
    
    public void desinscrire(){
        nbPlaces = nbPlaces+1;
    }
}
